# DateBinder.java

    package org.codefilarete.stalactite.sql.statement.binder;

    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Timestamp;
    import java.util.Date;

    /**
     * {@link ParameterBinder} dedicated to {@link Date} : uses {@link ResultSet#getTimestamp(String)} and {@link PreparedStatement#setTimestamp(int, Timestamp)}
     *
     * @author Guillaume Mary
     */
    public class DateBinder implements ParameterBinder<Date> {

    	@Override
    	public Class<Date> getType() {
    		return Date.class;
    	}

    	@Override
    	public Date doGet(ResultSet resultSet, String columnName) throws SQLException {
    		return new Date(resultSet.getTimestamp(columnName).getTime());
    	}

    	@Override
    	public void set(PreparedStatement statement, int valueIndex, Date value) throws SQLException {
    		statement.setTimestamp(valueIndex, new Timestamp(value.getTime()));
    	}
    }